// 自定义的配置，如文件别名
// 本文件中的配置在运行时会自动合并到公共的配置中运行
const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = ['js', 'css']

module.exports = {
    // lintOnSave: process.env.NODE_ENV !== 'production',
    // lintOnSave: false,
    // 虽然对带宽很友好，但是调试起来就不是那么轻松了。我们在代码出错的时候，肯定最希望能定位其在源码中的位置。
    productionSourceMap: false,
    configureWebpack: {
        resolve: {
            alias: {
                // 注意脚手架内部已经配置了src别名为@
                'assets': '@/assets',
                'common': '@/common',
                'components': '@/components',
                'network': '@/network',
                'views': '@/views',
                // router、store不需要配置
            }
        },
        plugins: [
            new CompressionWebpackPlugin({
                filename: '[path].gz[query]',   // 提示compression-webpack-plugin@3.0.0的话asset改为filename
                algorithm: 'gzip',
                test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
                threshold: 1024,
                minRatio: 0.8,
                //  删除未压缩的文件，谨慎设置，如果希望提供非gzip的资源，可不设置或者设置为false
                // deleteOriginalAssets: true
            })
        ]
    }
}

